/*
 * TQuery 2.0.1版本
 * 功能更新
 * * 将工厂函数返回的数组,修改为TQuery对象
 *   * TQuery对象一定是类数组对象
 * * 增加一些常见方法
 *   * html() - 获取和设置
 *   * text()
 *   * val()
 *   * attr()
 * * 练习
 *   * get(index)方法 - 将得到的TQuery对象转换为DOM对象
 *     * index - 索引值
 */
function $(selector){
	//var arr = [];
	var _tquery = new TQuery();
	
	if(selector.substr(0,1) == "#"){
		var myid = selector.substr(1);
		var ele = document.getElementById(myid);
		_tquery.push(ele);
	}else if(selector.substr(0,1) == "."){
		var myclass = selector.substr(1);
		var eles = document.getElementsByClassName(myclass);
		for(var i=0;i<eles.length;i++){
			_tquery.push(eles[i]);
		}
	}else{
		var eles = document.getElementsByTagName(selector);
		for(var i=0;i<eles.length;i++){
			_tquery.push(eles[i]);
		}
	}
	return _tquery;
}

// 使用构造器方式定义TQuery对象
function TQuery(){}
// 如何将TQuery定义为类数组对象
TQuery.prototype = new Array();
// html() - 获取和设置
TQuery.prototype.html = function(html){
	// 当前是获取还是设置?
	if(html){
		// 设置
		this[0].innerHTML = html;
	}else{
		// 获取 - 默认返回第一个匹配元素的html代码
		return this[0].innerHTML;
	}
}
// val() - 获取和设置
TQuery.prototype.val = function(val){
	if(val || val == ""){
		// 设置
		this[0].value = val;
	}else{
		// 获取
		return this[0].value;
	}
}
// text()
TQuery.prototype.text = function(text){
	// textContent是非IE浏览器
	if(text || text == ""){
		this[0].textContent = text;
	}else{
		return this[0].textContent; 
	}
}
// attr()
TQuery.prototype.attr = function(name,value){
	if(value || value == ""){
		this[0].setAttribute(name,value);
	}else{
		return this[0].getAttribute(name);
	}
}
// get(index)方法
TQuery.prototype.get = function(index){
	return this[index];
}
// 事件 bind(type,fn)方法 - addEventListener()
TQuery.prototype.bind = function(type,fn){
	// 绑定一个元素
	//this[0].addEventListener(type,fn);
	for(var i=0;i<this.length;i++){
		this[i].addEventListener(type,fn);
	}
}